<?php

/**
 * cotizaciones actions.
 *
 * @package    dirsac
 * @subpackage cotizaciones
 * @author     Miguel Flores
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class cotizacionesActions extends autocotizacionesActions
{
	
public function executeIndex(sfWebRequest $request)
  {
    //$this->compra_internacional_list = Doctrine::getTable('CompraInternacional')->findAll();
    $this->cotizacion_nacional_list = Doctrine::getTable('CotizacionNacional')
    	->createQuery('c')
    	->execute();
      
   $this->filter = new CotizacionNacionalFormFilter();
   $this->setTemplate('index');
  }
  
  
  // Código del Filtro
  public function executeFilter(sfWebRequest $request)
	{
		$filter_values = $request->getParameter('cotizacion_nacional_filters');
		$this->filter = new CotizacionNacionalFormFilter();
		$this->filter -> bind($filter_values);
		$this->consulta = $this->filter->buildQuery($this->filter->getValues());

		$this->cotizacion_nacional_list = $this->consulta->execute();

		$this->setTemplate('index');
	}

public function executeCotizar (sfWebRequest $request)
{
	    $this->form = new ArchivoDetalleCotizacionNacionalForm();
		$this->cotizacion_nacional = Doctrine::getTable('CotizacionNacional')->find($request->getParameter('id'));
		$this->items = Doctrine_Query::create()->select('i.*')->from('ItemCotizacionNacional i')->where("i.cotizacion_id = '".$request->getParameter('id')."'");
}



public function executeElegir (sfWebRequest $request)
{
	   $this->cotizacion_nacional = Doctrine::getTable('CotizacionNacional')->find($request->getParameter('id'));
	   $this->items = Doctrine_Query::create()->select('i.*')->from('ItemCotizacionNacional i')->where("i.cotizacion_id = '".$request->getParameter('id')."'");
	   
}



public function executeEnviaracotizacion(sfWebRequest $request)
{
	$this->cotizacion_nacional = Doctrine::getTable('CotizacionNacional')->find(array($request->getParameter('id')));
	$this->forward404Unless($this->cotizacion_nacional);

	// Cambiamos el estado
	$this->cotizacion_nacional->enviar();

	// Enviamos el correo
	$this->cotizacion_nacional->correo('a cotizar',$this->cotizacion_nacional->getCorreoEncargado());

	// Volvemos al template
	$this->setTemplate('show');
}

public function executeEnviaraseleccion(sfWebRequest $request)
{
	$this->cotizacion_nacional = Doctrine::getTable('CotizacionNacional')->find(array($request->getParameter('id')));
	$this->forward404Unless($this->cotizacion_nacional);

	// Cambiamos el estado
	$this->cotizacion_nacional->cotizada();

	// Enviamos el correo
	$this->cotizacion_nacional->correo('cotizada',$this->cotizacion_nacional->getCorreoEncargado());

	// Volvemos al template
	$this->setTemplate('show');
}


public function executeGuardar(sfWebRequest $request)
{
	    
}
  
public function executeCotizando(sfWebRequest $request)
{
	$this->cotizacion_nacional_list = Doctrine::getTable('CotizacionNacional')
	  ->createQuery('a')
	  ->where('a.estado = ?', 'En Cotizacion')
	  ->execute();
	  $this->filter = new CotizacionNacionalFormFilter();
	  $this->setTemplate('index');
}
  
public function executeCotizadas(sfWebRequest $request)
{
	$this->cotizacion_nacional_list = Doctrine::getTable('CotizacionNacional')
	  ->createQuery('a')
	  ->where('a.estado = ?', 'Cotizada')
	  ->execute();
	  $this->filter = new CotizacionNacionalFormFilter();
	  $this->setTemplate('index');
}

public function executeEnviadas(sfWebRequest $request)
{
	$this->cotizacion_nacional_list = Doctrine::getTable('CotizacionNacional')
	  ->createQuery('a')
	  ->where('a.estado = ?', 'Enviada a Compra')
	  ->execute();
	  $this->filter = new CotizacionNacionalFormFilter();
	  $this->setTemplate('index');
}

public function executeBorrador(sfWebRequest $request)
  {
    $this->cotizacion_nacional_list = Doctrine::getTable('CotizacionNacional')
      ->createQuery('a')
      ->where('a.estado = ?', 'Borrador')
      ->execute();
      $this->filter = new CotizacionNacionalFormFilter();
      $this->setTemplate('index');
  }


public function executeCrearcompra(sfWebRequest $request)
{
	$this->cotizacion_ = Doctrine::getTable('CotizacionNacional')->find(array($request->getParameter('id')));
	$this->forward404Unless($this->cotizacion_);

	// Cambiamos el estado
	$this->cotizacion_->compras();

	// Enviamos el correo
	$this->cotizacion_->correo('a compra',$this->cotizacion_->getCorreoEncargado());
		
		
	$eleccion = $request->getParameter('cotizacion');
	settype($eleccion, "integer");
	
	$valores = $request->getParameter('cotizaciones');
	$columna = $valores['precio'][$eleccion];
	$id_cotizacion = $request->getParameter('id');
	$cotizacion_nacional = Doctrine::getTable('CotizacionNacional')->find($id_cotizacion);
	
	//print_r($eleccion);
	//print_r($columna);
	//die();
	
	$items_cotizacion_nacional = Doctrine::getTable('ItemCotizacionNacional')
      ->createQuery('a')
      ->where('a.cotizacion_id = ?', $id_cotizacion)
      ->execute();
	$compra = new CompraNacional();
	$compra -> setNombreEncargado($cotizacion_nacional->getReferencia());
	$compra -> setCuentaId($cotizacion_nacional->getCuentaId());
	$compra -> setProveedorId($cotizacion_nacional->getProveedorId());
	$compra -> setEstado('Pendiente');
	$compra -> setCorreoEncargado($cotizacion_nacional->getCorreoEncargado());
	$compra -> setAnexoEncargado($cotizacion_nacional->getAnexoEncargado());
	$compra -> setPlazoEntrega($cotizacion_nacional->getPlazoEntrega());
	$compra -> save();
	$id_nueva = $compra->getId();
	$cotizacion_nacional -> setCompraAsociada($id_nueva);
	$cotizacion_nacional -> save();
	//print_r($id_nueva);
	//die(id_nueva);
	$i=0;
	$neto=0;
	$total=0;
	$iva=0;
	//$items_finales = new Doctrine_Collection('ItemCotizacionNacional');
	foreach($items_cotizacion_nacional as $item_temp)
	{
			$item_compra=new ItemCompraNacional();
			$item_compra -> setCompraId($id_nueva);
			$cant = $item_temp->getCantidad();
			$item_compra -> setCantidad($cant);
			$item_compra -> setArticuloId($item_temp->getArticuloId());
			$costo = $columna[$i];
			settype($costo,'integer');
			$item_compra -> setCostoNetoUnitario($costo);
			$item_compra -> setSubtotal($costo*$cant);
			$item_compra -> save();
			//$items_finales[]=$item_compra;
			$i++;
			$neto+=($costo*$cant);
			//$iva+=($neto*0.19);
			
	}
	$total=$neto*1.19;
	$iva=$neto*0.19;
	settype($neto,'integer');
	settype($iva,'integer');
	settype($total,'integer');
	
	$compra -> setNeto($neto);
	$compra -> setIva($iva);
	$compra -> setTotal($total);
	//$compra -> setItemCompraNacional($items_finales);
	$compra -> save();
	$request-> setParameter('id', $id_nueva); 
	$this->compra_nacional = Doctrine::getTable('CompraNacional')->find($id_nueva);
	$this->forward('compras','show');
}
	public function executeEnviar(sfWebRequest $request)
  {
    $this->cotizacion_nacional = Doctrine::getTable('CotizacionNacional')->find(array($request->getParameter('id')));
    $this->forward404Unless($this->cotizacion_nacional);
    
    // Cambiamos el estado
    $this->cotizacion_nacional->enviar();
  
    $this->setTemplate('show');
  }

	
  public function executeAdd(sfWebRequest $request){
    $this->forward404unless($request->isXmlHttpRequest());
    $number = intval($request->getParameter("num"));

    //$this->form = new EventForm();
    $this->form = new CotizacionNacionalForm();

    $this->form->addNewFields($number);

    return $this->renderPartial('addNew',array('form' => $this->form, 'number' => $number));
  }

 public function executeNew(sfWebRequest $request){
    //$event = new Event();
    $cotizacion = new CotizacionNacional();
   
    //$this->form = new EventForm($event);
    $this->form = new CotizacionNacionalForm($cotizacion);
		
    $this->form->addNewFields(0);

    $this->setTemplate('new');
  }
}
